package org.afs.gescol.gwt.client.service;

import java.util.List;

import org.afs.gescol.gwt.shared.GlobalConstantesModel;
import org.scub.foundation.framework.gwt.module.shared.IdLabelModel;

import com.google.gwt.user.client.rpc.AsyncCallback;

/**
 * Asynchrone service for GetServicesGwt.
 */
public interface GetServicesGwtAsync {

    /**
     * Get the app constantes.
     * @param callBack the callback
     */
    void getGlobalConstantesModel(AsyncCallback<GlobalConstantesModel> callBack);

    /**
     * Get a school class by name.
     * @param name the school class
     * @param callBack the callback
     */
    void getClassByName(String name, AsyncCallback<List<IdLabelModel>> callBack);

    /**
     * Get a school cycle by name.
     * @param name the school cycle
     * @param callBack the callback
     */
    void getCycleByName(String name, AsyncCallback<List<IdLabelModel>> callBack);

    /**
     * Get a school year by name.
     * @param name the school year
     * @param callBack the callback
     */
    void getAnneeByName(String name, AsyncCallback<List<IdLabelModel>> callBack);

    /**
     * Get a school period by name.
     * @param name the school period
     * @param callBack the callback
     */
    void getPeriodeByName(String name, AsyncCallback<List<IdLabelModel>> callBack);

    /**
     * Get a school cycle by user.
     * @param userId the school cycle
     * @param callBack the callback
     */
    void getCycleByUser(Long userId, AsyncCallback<List<IdLabelModel>> callBack);

    /**
     * Get a school period by year.
     * @param anneeId the school period
     * @param callBack the callback
     */
    void getPeriodeByAnnee(Long anneeId, AsyncCallback<List<IdLabelModel>> callBack);

    /**
     * Get a genre / civility of person.
     * @param idTypePersonne type of person
     * @param start start char
     * @param callBack the callback
     */
    void getGenreByTypePersonne(Long type, String start, AsyncCallback<List<IdLabelModel>> callBack);

    /**
     * Get a oui / non list.
     * @param start start char
     * @param callBack the callback
     */
    void getOuiNon(String start, AsyncCallback<List<IdLabelModel>> callBack);

    /**
     * Get a statut (ancien / nouveau) list.
     * @param startName start char of name
     * @param callBack the callback
     */
    void getStatutByName(String startName, AsyncCallback<List<IdLabelModel>> callBack);

}
